CABA Vecinal

La Ciudad Autónoma de Buenos Aires en 15 minutos

La ya conocida teoría de las “Ciudades de 15 minutos”, término acuñado por Carlos Moreno (2016), cuenta ya con 7 años de “popularidad”, en los que ha generado un intenso debate con partidarios y detractores apasionados.

Si bien la teoría y los conceptos que presenta no son nuevos, ya que han sido tratados previamente por Clarence Perry (1929), Jane Jacobs (1961), Carmen Belloni (1984),y Sandra Bonfiglioli (1997), entre otros; la temática ha recobrado relevancia en el contexto actual luego del gran impacto que ha tenido la pandemia por COVID 19.

Por esa razón, este estudio se propone analizar los datos disponibles de la Ciudad Autónoma de Buenos Aires para evaluar en qué medida puede ser considerada una “ciudad de 15 minutos”, una Ciudad Vecinal.

PRIMER PASO
| Metodología de investigación

Para llevar esto a cabo, conformé una muestra territorial, tomando un punto aleatorio dentro de cada barrio de la Ciudad de Buenos Aires. A partir de estos puntos, construí una isocrona definida a 15minutos a pie y tomé esas porciones del territorio como las áreas a estudiar.

Código
barrios <- st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-educacion/barrios/barrios.geojson") %>% 
  mutate(AREAKM2 = round((AREA/1000000),2)) %>% 
  st_transform(4326)%>%
  arrange(BARRIO)
FALSE Reading layer `barrios' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-educacion/barrios/barrios.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 48 features and 5 fields
FALSE Geometry type: MULTIPOLYGON
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.53152 ymin: -34.70529 xmax: -58.33515 ymax: -34.52649
FALSE Geodetic CRS:  WGS 84
barrios_inter = barrios %>% 
  select(BARRIO,AREAKM2)

mb_eevv = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/secretaria-de-desarrollo-urbano/espacios-verdes/espacio_verde_publico.geojson") %>% 
  st_make_valid() 
FALSE Reading layer `espacio_verde_publico_wgs84' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/secretaria-de-desarrollo-urbano/espacios-verdes/espacio_verde_publico.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 1896 features and 25 fields
FALSE Geometry type: MULTIPOLYGON
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.53175 ymin: -34.70557 xmax: -58.33983 ymax: -34.52657
FALSE Geodetic CRS:  WGS 84
#eevv_unido = st_union(mb_eevv)

centroides = st_centroid(barrios) %>% 
             st_transform(4326)

# RESTO LAS GEOMETRIAS DE ESPACIOS VERDES A LOS BARRIOS PARA QUE CUANDO GENERE LOS PUNTOS ALEATORIOS, NO CAIGAN AHÍ (Restar geometria2 de geometria1):

#barrios_sverde = st_difference(barrios, eevv_unido) 

#LO GUARDO Y LO LLAMO PARA NO REPETIR:

#barrios_sverde = st_read("data/barrios_sverde.geojson")

#GENERO Y GUARDO LOS PTOS ALEATORIOS PORQUE SINO CADA VEZ QUE CORRO EL CODIGO, SON NUEVOS:

#puntos_aleatoriossv <- rowwise(barrios_sverde) %>%
#  mutate(punto_aleatorio = st_sample(geometry, 1, type = "random")) %>% 
#  st_drop_geometry(geometry) %>% 
#  st_as_sf()

#st_write(puntos_aleatoriossv, "data/nuevos_puntos.geojson")

puntos_aleatorios = st_read("data/nuevos_puntos.geojson")
FALSE Reading layer `nuevos_puntos_finalisimo' from data source 
FALSE   `I:\Mi unidad\02-ESTUDIOS\00-MEU\MU123 - Instrumentos de análisis urbano II\IAUII_TRABAJO_FINAL\data\nuevos_puntos.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 48 features and 6 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.53054 ymin: -34.69186 xmax: -58.35569 ymax: -34.54348
FALSE Geodetic CRS:  WGS 84
Código
#ISOCRONAS PARA PUNTOS ALEATORIOS EN BARRIOS DESCONTANDO ESPACIOS VERDES:
#ESTA SECCIÓN VOY A EJECUTARLA UNA SOLA VEZ Y GUARDO EL OBJETO PORQUE TARDA MUCHO (itero en cada punto para hacer las isocronas):

#lista_isocronassv <- lapply(puntos_aleatorio$geometry, function(point) {
#  osrmIsochrone(loc = st_coordinates(point),
#                breaks = seq(from = 0, to = 15, by = 15),
#                res = 45,
#                osrm.profile = "foot")
#})

# Combino las isocronas
#isocronas_bindsv <- do.call(rbind, lista_isocronassv)

#st_write(isocronas_bindsv, "data/isocronas.geojson")



#Ahora simplemente llamo la base que armé y le uno los nombres por orden de las observaciones
isocronas_barrios = st_read("data/isocronas.geojson") %>% 
                    st_transform(4326) %>% 
                    cbind(st_drop_geometry(centroides)) %>% 
                    st_make_valid()
FALSE Reading layer `isocronas_finalisimo' from data source 
FALSE   `I:\Mi unidad\02-ESTUDIOS\00-MEU\MU123 - Instrumentos de análisis urbano II\IAUII_TRABAJO_FINAL\data\isocronas.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 48 features and 3 fields
FALSE Geometry type: MULTIPOLYGON
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.53824 ymin: -34.69955 xmax: -58.34446 ymax: -34.53483
FALSE Geodetic CRS:  WGS 84
#Hago una base simplificada para relacionar con los puntos
isocronas15 = isocronas_barrios %>% 
                          select(BARRIO)

Considerando las diferentes distancias vinculadas a la cotidianeidad de las necesidades y a la magnitud del equipamiento que las sirve, creo isocronas a 30m para abarcar esas variables:

Código
#CONSTRUYO ISOCRONAS DE 30M PARA LOS SERVICIOS MENOS COTIDIANOS
#lista_isocronas30 <- lapply(puntos_aleatorios$geometry, function(point) {
#  osrmIsochrone(loc = st_coordinates(point),
#                breaks = seq(from = 0, to = 30, by = 30),
#                res = 40,
#                osrm.profile = "foot")
#})

# Combino las isocronas
#isocronas_bind30 <- do.call(rbind, lista_isocronas30)

#st_write(isocronas_bind30, "data/isocronas30.geojson")

isocronas30 = st_read("data/isocronas30.geojson")%>% 
                    st_transform(4326) %>% 
                    cbind(st_drop_geometry(centroides)) %>% 
                    st_make_valid()%>% 
                    select(BARRIO)
FALSE Reading layer `isocronas30' from data source 
FALSE   `I:\Mi unidad\02-ESTUDIOS\00-MEU\MU123 - Instrumentos de análisis urbano II\IAUII_TRABAJO_FINAL\data\isocronas30.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 48 features and 3 fields
FALSE Geometry type: MULTIPOLYGON
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.54927 ymin: -34.7089 xmax: -58.33865 ymax: -34.52605
FALSE Geodetic CRS:  WGS 84

Resultado de las isocronas en relación con los puntos y el perímetro de cada barrio:

Código
mapa_isocronas =
leaflet(st_zm(barrios) %>% st_transform(4326)) %>%
  addTiles() %>%
  addProviderTiles(providers$CartoDB.Positron, group = "OSM",
                   options = providerTileOptions(minzoom = 1, maxzoom = 15)) %>%
  addProviderTiles(providers$Esri.WorldImagery, group = "Satelite") %>%
  addLayersControl(
    baseGroups = c("OSM","Satelite"), 
    overlayGroups = c("Barrios CABA","Puntos Aleatorios","Isocronas 15m","Isocronas 30m" ))%>% 
  
  addPolygons(data= barrios,
              color = "black",
              weight = 0.4,
              opacity = 0.7,
              fillColor = "white",
              fillOpacity = 0.5,
              popup = ~paste("<strong> BARRIO: </strong>", BARRIO,"<br> <strong> ÁREA: </strong>", AREAKM2, "km2"),
              group = "Barrios CABA") %>% 
  
  addPolygons(data= isocronas30,
              color = "#d0e0e3",
              weight = 0.4,
              opacity = 0.7,
              fillColor = "#d0e0e3",
              fillOpacity = 0.5,
              popup = ~paste("<strong> BARRIO: </strong>", BARRIO),
              group = "Isocronas 30m")%>%

  addPolygons(data= isocronas15,
              color = "#a2c4c9",
              weight = 0.4,
              opacity = 0.7,
              fillColor = "#a2c4c9",
              fillOpacity = 0.5,
              popup = ~paste("<strong> BARRIO: </strong>", BARRIO),
              group = "Isocronas 15m") %>% 
  
      addCircleMarkers(data=puntos_aleatorios,
              fillColor = "#45818e",
              weight = 0.5,
              color = "#45818e",
              fillOpacity = 0.5,
              radius = 2,
              popup = ~paste("<strong> BARRIO: </strong>", BARRIO),
              group = "Puntos Aleatorios") 

Si bien en un planteo inicial había tomdo como origen de las isocronas los centroides de los barrios, posteriormente modifiqué esto para que la muestra pudiese representar las condiciones en las periferias y superposiciones entre geometrías, ya que son también condiciones reales que se dan dentro de la ciudad, y deben ser contempladas.

Por otro lado, para simplificar el trabajo de intersección de las bases con las isocronas, y la búsqueda de datos en osm, definí algunas funciones inicialmente:

Código
#DEFINO ESTA FUNCION PARA SIMPLIFICAR EL FILTRO DE LAS VARIABLES CON LA GEOMETRIA DE LAS ISOCRONAS Y HACER EL CONTEO
conteo_interno = function(db,isocronas, nombre_variable){
  db %>% 
  st_transform(4326) %>% 
  st_intersection(isocronas) %>%
  group_by(BARRIO) %>%
  summarise(!!nombre_variable := n())
}

#DEFINO LA BBOX DE CABA PARA LIMITAR BUSQUEDAS EN OSM
bbox_caba <- getbb("Ciudad Autónoma de Buenos Aires, Argentina")

#DEFINO UNA FUNCION PARA HACER BUSQUEDAS E OSM
buscar_osm <- function(nombre_objeto, clave) {
  opq_objeto <- opq(bbox_caba)
  opq_objeto <- add_osm_feature(opq_objeto, key = clave)
  opq_objeto <- osmdata_sf(opq_objeto)
  
  assign(nombre_objeto, opq_objeto, envir = .GlobalEnv)
}

BASES DE DATOS
| Ejes y Variables

Con el territorio definido, comencé la busqueda de bases de datos geográficos disponibles y/o construibles para conformar los distintos ejes y variables con los que se pueden representar las necesidades cotidianas que requieren esta proximidad.

Código
gs4_deauth() # Eliminar auth interactivo (link publico)
variables = read_sheet("https://docs.google.com/spreadsheets/d/15K_hQPI8NeN-vGZoND9f9yWvzg82VgPx-S1nffsJ3LQ/edit#gid=0")

tabla_variables=
datatable(variables, 
  options = list(
    searching = FALSE,
    rownames = FALSE,
    pageLength = 10,
    dom = 't',
    scrollY = '300px',
    scrollX = FALSE,  # Evitar el desplazamiento horizontal
    language = list(zeroRecords = "No existen datos para los requerimientos seleccionados"),
    autoWidth = TRUE,
    columnDefs = list(
      list(targets = 0, visible = FALSE)
    )
  )
)

Al analizar las bases disponibles, y las que podía construir desde búsquedas con OSM, se hizo evidente que eran insuficientes y que estos datos no podrían representar la realidad que deseaba investigar.

Sin embargo, continué con el trabajo, ya que dejando una base y una metodología armada, posteriormente se podría completar/mejorar con datos nuevos que vayan apareciendo.

(Resalto este conflicto, ya que las ponderaciones sobre las variables que construyen cada eje, y a su vez el índice, se hicieron desde esta deficiencia y, por lo tanto, no tienen ninguna rigurosidad ni validez. Solo sirven a modo de ejercicio)

NECESIDADES COTIDIANAS
| Ejes y Variables

01| Autoabastecimiento

Selecciono y cuento los puntos de autoabastecimiento dentro de las isocronas según nivel de cotidianeidad de la necesidad. Las bases disponibles cuentan con datos de: - Comercios (15min) - Ferias (30min) - Locales gastronómicos (15min) - Estaciones de servicio (30min)

Código
#AUTOABASTECIMIENTO--------------------------------------------------------------

#HAGO UNA BUQUEDA DE LOS COMERCIOS CON OSM, GUARDO LA NUEVA BASE Y DESHABILITO EL PROCESO PARA NO REPETIRLO:

#buscar_osm("a_comercio", "shop")

#a_comercio_pt = a_comercio$osm_points %>% 
#  select(name)

#a_comercio_mpol = a_comercio$osm_multipolygons %>% 
#  select(name) %>% 
#  st_centroid() %>% 
#  st_transform(4326)

#a_comercio_pol = a_comercio$osm_polygons %>% 
#  select(name)%>% 
#  st_centroid() %>% 
#  st_transform(4326)

#a_comercio = rbind(a_comercio_pt,a_comercio_pol,a_comercio_mpol) %>% 
#  conteo_interno(isocronas15,"n_a_comercio")

#st_write(a_comercio, "data/a_comercio.geojson")

a_comercio = st_read("data/a_comercio.geojson")
FALSE Reading layer `a_comercio' from data source 
FALSE   `I:\Mi unidad\02-ESTUDIOS\00-MEU\MU123 - Instrumentos de análisis urbano II\IAUII_TRABAJO_FINAL\data\a_comercio.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 47 features and 2 fields
FALSE Geometry type: MULTIPOINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.53141 ymin: -34.69902 xmax: -58.3544 ymax: -34.54045
FALSE Geodetic CRS:  WGS 84
a_ferias = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-espacio-publico-e-higiene-urbana/ferias-mercados/ferias-itinerantes-de-abastecimiento-barrial.geojson") %>% 
  conteo_interno(isocronas30,"n_a_ferias")
FALSE Reading layer `ferias_itinerantes_de_abastecimiento_barrial_WGS84' from data source `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-espacio-publico-e-higiene-urbana/ferias-mercados/ferias-itinerantes-de-abastecimiento-barrial.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 184 features and 14 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52895 ymin: -34.68781 xmax: -58.35888 ymax: -34.54123
FALSE Geodetic CRS:  WGS 84
a_eess = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-educacion/estaciones-servicio/estaciones_servicio_caba.xlsx") %>% 
  filter(!is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas30,"n_a_eess")

a_gastronomicos = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ente-de-turismo/oferta-establecimientos-gastronomicos/oferta-gastronomica.geojson") %>% 
  conteo_interno(isocronas15,"n_a_gastronomicos")
FALSE Reading layer `oferta-gastronomica' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ente-de-turismo/oferta-establecimientos-gastronomicos/oferta-gastronomica.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 2823 features and 18 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52957 ymin: -34.69226 xmax: -58.35505 ymax: -34.53663
FALSE Geodetic CRS:  WGS 84

Luego aplico la ponderación teniendo en cuenta la importancia de la presencia de estos bienes/servicios, y la cantidad necesaria para que la oferta sea veriada y competitiva.

Código
#LLAMO TODAS LAS BASES DE DATOS Y LAS FILTRO SEGUN SI SON DE LAS CATEGORIAS DE ANALISIS
bases_de_datos <- ls() %>%
  grep("^a_", ., value = TRUE) %>%
  lapply(get)

# ARMO UNA BASE UNIFICADA HACIENDO LEFT_JOINS ITERATIVOS CON AS BD
barrios_datos <- bases_de_datos %>% 
  reduce(function(df1, df2) {
    left_join(df1, df2 %>% st_drop_geometry(), by = "BARRIO") %>%
      replace(is.na(.), 0)
  }, .init = barrios_inter)

barrios_datos = barrios_datos %>% 
  mutate(subindice = ifelse(n_a_comercio >= 10, 0.6, n_a_comercio*0.1) +
                              ifelse(n_a_eess >= 1, 0.08, 0)+
                              ifelse(n_a_ferias >= 1, 0.02, 0)+
                              ifelse(n_a_gastronomicos >= 6, 0.28, 0))

Configuro el mapa.

Código
# Definir una función para crear una paleta de colores personalizada
colores <- colorRampPalette(c("#d0e0e3", "#a2c4c9", "#45818e"))

# Generar la paleta basada en tu rango de valores (0 a 1)
n <- 20  # Número de colores en la paleta
paleta <- colores(n)

pal_i <- colorNumeric(paleta, domain = c(0,1))

mapa_subindice =
leaflet(st_zm(barrios) %>% st_transform(4326)) %>%
  addTiles() %>%
  addProviderTiles(providers$CartoDB.Positron, group = "OSM",
                   options = providerTileOptions(minzoom = 1, maxzoom = 15)) %>%
  addProviderTiles(providers$Esri.WorldImagery, group = "Satelite") %>%
  addLayersControl(
    baseGroups = c("OSM","Satelite"), 
    overlayGroups = c("Subindice por barrio","Puntos Aleatorios"))%>% 
  
  addPolygons(data= barrios_datos,
              color = ~pal_i(subindice),
              weight = 0.4,
              opacity = 0.7,
              fillColor = ~pal_i(subindice),
              fillOpacity = 0.8,
              popup = ~paste("<strong> BARRIO: </strong>", BARRIO,"<br> 
                             <strong> ÁREA: </strong>", AREAKM2, "km2<br> 
                             <strong> I.AUTOABASTECIMIENTO: </strong>",subindice,"<br> 
                             <strong>  COMERCIOS: </strong>", n_a_comercio,"<br> 
                             <strong>  FERIAS: </strong>", n_a_ferias,"<br> 
                             <strong>  LOCALES GASTRONÓMICOS: </strong>", n_a_gastronomicos,"<br> 
                             <strong>  ESTACIONES DE SERVICIO: </strong>", n_a_eess),
              group = "Subindice por barrio") %>% 
  
      addCircleMarkers(data=puntos_aleatorios,
              fillColor = "#45818e",
              weight = 0.5,
              color = "#45818e",
              fillOpacity = 0.5,
              radius = 2,
              popup = ~paste("<strong> BARRIO: </strong>", BARRIO),
              group = "Puntos Aleatorios") 

SUBINDICE AUTOABASTECIMIENTO| Mapeo por barrio basado en los valores de la muestra

02| Cultura

Selecciono y cuento los puntos de oferta cultural dentro de las isocronas según nivel de cotidianeidad de la necesidad. Las bases disponibles cuentan con datos de: - Centros culturales (15min) - Monumentos (30min)

Código
# CULTURA------------------------------------------------------------------------

c_culturales = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-cultura/espacios-culturales/espacios-culturales.geojson")  %>% conteo_interno(isocronas15,"n_c_culturales")
FALSE Reading layer `Base_espacios_culturales_primera_modificacion' from data source `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-cultura/espacios-culturales/espacios-culturales.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 3031 features and 30 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52924 ymin: -34.6943 xmax: -58.34907 ymax: -34.53574
FALSE Geodetic CRS:  WGS 84
c_monumentos = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-espacio-publico-e-higiene-urbana/monumentos/monumentos.xlsx") %>% 
  filter(!is.na(LATITUD)) %>% 
  st_as_sf(coords = c("LONGITUD", "LATITUD"), crs = 4326) %>% 
  conteo_interno(isocronas30,"n_c_monumentos") %>% 
  filter(!is.na(BARRIO))

Luego aplico la ponderación teniendo en cuenta la importancia de la presencia de estos bienes/servicios, y la cantidad necesaria para que la oferta sea veriada y competitiva.

Código
#LLAMO TODAS LAS BASES DE DATOS Y LAS FILTRO SEGUN SI SON DE LAS CATEGORIAS DE ANALISIS
bases_de_datos <- ls() %>%
  grep("^c_", ., value = TRUE) %>%
  lapply(get)

# ARMO UNA BASE UNIFICADA HACIENDO LEFT_JOINS ITERATIVOS CON AS BD
barrios_datos <- bases_de_datos %>% 
  reduce(function(df1, df2) {
    left_join(df1, df2 %>% st_drop_geometry(), by = "BARRIO") %>%
      replace(is.na(.), 0)
  }, .init = barrios_inter)

barrios_datos = barrios_datos %>% 
  mutate(subindice = ifelse(n_c_culturales >= 1, 0.85, 0) +
                     ifelse(n_c_monumentos >= 1, 0.15, 0))
Código
# Definir una función para crear una paleta de colores personalizada
colores <- colorRampPalette(c("#d0e0e3", "#a2c4c9", "#45818e"))

# Generar la paleta basada en tu rango de valores (0 a 1)
n <- 20  # Número de colores en la paleta
paleta <- colores(n)

pal_i <- colorNumeric(paleta, domain = c(0,1))

mapa_subindice =
leaflet(st_zm(barrios) %>% st_transform(4326)) %>%
  addTiles() %>%
  addProviderTiles(providers$CartoDB.Positron, group = "OSM",
                   options = providerTileOptions(minzoom = 1, maxzoom = 15)) %>%
  addProviderTiles(providers$Esri.WorldImagery, group = "Satelite") %>%
  addLayersControl(
    baseGroups = c("OSM","Satelite"), 
    overlayGroups = c("Subindice por barrio","Puntos Aleatorios"))%>% 
  
  addPolygons(data= barrios_datos,
              color = ~pal_i(subindice),
              weight = 0.4,
              opacity = 0.7,
              fillColor = ~pal_i(subindice),
              fillOpacity = 0.8,
              popup = ~paste("<strong> BARRIO: </strong>", BARRIO,"<br> 
                             <strong> ÁREA: </strong>", AREAKM2, "km2<br> 
                             <strong> I.CULTURA: </strong>",subindice,"<br> 
                             <strong>  ESPACIOS CULTURALES: </strong>", n_c_culturales,"<br> 
                             <strong>  MONUMENTOS: </strong>", n_c_monumentos),
              group = "Subindice por barrio") %>% 
  
      addCircleMarkers(data=puntos_aleatorios,
              fillColor = "#45818e",
              weight = 0.5,
              color = "#45818e",
              fillOpacity = 0.5,
              radius = 2,
              popup = ~paste("<strong> BARRIO: </strong>", BARRIO),
              group = "Puntos Aleatorios") 

SUBINDICE CULTURA| Mapeo por barrio basado en los valores de la muestra

03| Deportes

Código
#DEPORTES-------------------------------------------------------------------------

d_polideportivos = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/vicejefatura-de-gobierno/polideportivos/polideportivos.geojson")  %>% 
  conteo_interno(isocronas30,"n_d_polideportivos")
FALSE Reading layer `polideportivos' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/vicejefatura-de-gobierno/polideportivos/polideportivos.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 16 features and 14 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.51376 ymin: -34.66801 xmax: -58.37641 ymax: -34.5531
FALSE Geodetic CRS:  WGS 84
d_clubes = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/vicejefatura-de-gobierno/clubes/clubes.geojson") %>% 
  conteo_interno(isocronas15,"n_d_clubes")
FALSE Reading layer `clubes' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/vicejefatura-de-gobierno/clubes/clubes.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 301 features and 20 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52924 ymin: -34.68844 xmax: -58.35865 ymax: -34.53596
FALSE Geodetic CRS:  WGS 84

04| Educación

Código
#EDUCACION----------------------------------------------------------------------

e_jardinesc = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/jardines-comunitarios/jardin_comunitario.geojson") %>% 
  conteo_interno(isocronas15,"n_e_jardinesc")
FALSE Reading layer `jardin_comunitario' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/jardines-comunitarios/jardin_comunitario.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 13 features and 14 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.49029 ymin: -34.68363 xmax: -58.37125 ymax: -34.58307
FALSE Geodetic CRS:  WGS 84
e_primerainfancia = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/centros-primera-infancia/centros-de-primera-infancia.geojson") %>% 
  conteo_interno(isocronas15,"n_e_primerainfancia")
FALSE Reading layer `centros_de_primera_infancia' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/centros-primera-infancia/centros-de-primera-infancia.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 76 features and 14 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.51595 ymin: -34.68693 xmax: -58.35589 ymax: -34.54864
FALSE Geodetic CRS:  WGS 84
e_desarrolloi = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/centros-desarrollo-infantil/centros-de-desarrollo-infantil.geojson") %>% 
  conteo_interno(isocronas15,"n_e_desarrolloi")
FALSE Reading layer `centros_de_desarrollo_infantil' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/centros-desarrollo-infantil/centros-de-desarrollo-infantil.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 20 features and 14 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.66777 ymin: -34.6779 xmax: -58.3604 ymax: -34.54956
FALSE Geodetic CRS:  WGS 84
e_educativos = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-educacion/establecimientos-educativos/establecimientos_educativos_WGS84.geojson") %>% 
  conteo_interno(isocronas15,"n_e_educativos")
FALSE Reading layer `establecimientos_educativos_WGS84' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-educacion/establecimientos-educativos/establecimientos_educativos_WGS84.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 2973 features and 27 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52918 ymin: -34.69318 xmax: -58.35072 ymax: -34.53619
FALSE Geodetic CRS:  WGS 84
e_universidades = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-educacion/universidades/universidades.xlsx") %>% 
  filter(!is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas30,"n_e_universidades") 

e_bibliotecas = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-cultura/bibliotecas/bibliotecas.xlsx") %>% 
  filter(!is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas30,"n_e_bibliotecas") 

05| Medio Ambiente

Código
#MEDIO AMBIENTE-------------------------------------------------------------------

#mb_arbolado = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/atencion-ciudadana/arbolado-publico-lineal/arbolado-publico-lineal-2017-2018.geojson") %>% 
#  conteo_interno("n_tp_arbolado")

mb_eevv = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/secretaria-de-desarrollo-urbano/espacios-verdes/espacio_verde_publico.geojson") %>% 
  st_make_valid() %>% 
  st_centroid() %>% 
  #hacer una ponderacion por tipo de espacio verde
  mutate(clasificac = as.factor(clasificac)) %>% 
  conteo_interno(isocronas15,"n_mb_eevv")
FALSE Reading layer `espacio_verde_publico_wgs84' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/secretaria-de-desarrollo-urbano/espacios-verdes/espacio_verde_publico.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 1896 features and 25 fields
FALSE Geometry type: MULTIPOLYGON
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.53175 ymin: -34.70557 xmax: -58.33983 ymax: -34.52657
FALSE Geodetic CRS:  WGS 84

06| Recreación

Código
# RECREACION----------------------------------------------------------

r_jugotecas = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/juegotecas-barriales/juegotecas-barriales.geojson") %>% 
  conteo_interno(isocronas15,"n_r_jugotecas")
FALSE Reading layer `juegotecas' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/juegotecas-barriales/juegotecas-barriales.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 19 features and 14 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52499 ymin: -34.68361 xmax: -58.35828 ymax: -34.55052
FALSE Geodetic CRS:  WGS 84
r_estadios = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/vicejefatura-de-gobierno/estadios/estadios.xlsx") %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas30,"n_r_estadios") 

r_peatonal = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/juegotecas-barriales/juegotecas-barriales.geojson") %>% 
  conteo_interno(isocronas15,"n_r_peatonal")
FALSE Reading layer `juegotecas' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/juegotecas-barriales/juegotecas-barriales.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 19 features and 14 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52499 ymin: -34.68361 xmax: -58.35828 ymax: -34.55052
FALSE Geodetic CRS:  WGS 84
r_jubilados = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/centros-jubilados/centros-de-jubilados-reempadronados.xlsx") %>% 
  filter(!is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas15,"n_r_jubilados") 

#TRABAJO SOBRE LA BASE DE DATOS DE LOCALES BAILABLES PARA ASIGNAR GEOMETRIA EN BASE A LAS DIRECCIONES DISPONIBLES:

#r_bailables = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/agencia-gubernamental-de-control/locales-bailables/locales_bailables.xlsx")%>% 
  #clean_names() %>% 
  #mutate(direccion = paste0(domicilio," ",no, ", Ciudad de Buenos Aires, Argentina")) %>% 
  #filter(!grepl("VENCI|SUSP|BAJA|DENE", estado)) %>% 
  #filter(!is.na(estado)) 

#evito problemas por cortes en la busqueda y después guardo el archivo y desactivo esta parte del código porque se demora mucho
#Sys.sleep(1)

#r_bailables = r_bailables %>%
  #geocode(address = direccion, method = "osm")

#r_bailables = r_bailables %>%
  #filter(!is.na(lat)) %>% 
  #st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  #st_write("data/r_bailables.geojson")

r_bailables =  st_read("data/r_bailables.geojson") %>% 
  conteo_interno(isocronas30,"n_r_bailables") 
FALSE Reading layer `r_bailables' from data source 
FALSE   `I:\Mi unidad\02-ESTUDIOS\00-MEU\MU123 - Instrumentos de análisis urbano II\IAUII_TRABAJO_FINAL\data\r_bailables.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 55 features and 15 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.51769 ymin: -34.66068 xmax: -58.36259 ymax: -34.55232
FALSE Geodetic CRS:  WGS 84

07| Salud

Código
# SALUD-------------------------------------------------------------------------

s_ufebriles = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/ufus/ubicacion-ufus.geojson")  %>% 
  conteo_interno(isocronas15,"n_s_ufebriles")
FALSE Reading layer `ufus2' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/ufus/ubicacion-ufus.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 18 features and 4 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.51563 ymin: -34.67177 xmax: -58.36593 ymax: -34.56505
FALSE Geodetic CRS:  WGS 84
s_cimujer = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/centros-integrales-mujer/centros-integrales-de-la-mujer.xlsx") %>% 
  filter(!is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas15,"n_s_cimujer")

s_hospitales = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/hospitales/hospitales.geojson")  %>% 
  conteo_interno(isocronas30,"n_s_hospitales")
FALSE Reading layer `hospitales_gcba_WGS84' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/hospitales/hospitales.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 36 features and 19 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.51563 ymin: -34.67185 xmax: -58.36012 ymax: -34.5539
FALSE Geodetic CRS:  WGS 84
s_cdinfantil = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/centros-desarrollo-infantil/centros-de-desarrollo-infantil.geojson")  %>% 
  conteo_interno(isocronas15,"n_s_cdinfantil")
FALSE Reading layer `centros_de_desarrollo_infantil' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-desarrollo-humano-y-habitat/centros-desarrollo-infantil/centros-de-desarrollo-infantil.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 20 features and 14 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.66777 ymin: -34.6779 xmax: -58.3604 ymax: -34.54956
FALSE Geodetic CRS:  WGS 84
s_farmacias = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/farmacias/farmacias.xlsx") %>% 
  filter(!is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas15,"n_s_farmacias")

s_privados = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/centros-salud-privados/centros-de-salud-privados.xlsx") %>% 
  filter(!is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas30,"n_s_privados")

s_vinfantil = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/vacunatorios-infantiles/vacunatorios_infantiles_WGS84.geojson")  %>% 
  conteo_interno(isocronas30,"n_s_vinfantil")
FALSE Reading layer `vacunatorios_infantiles_WGS84' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/vacunatorios-infantiles/vacunatorios_infantiles_WGS84.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 80 features and 11 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52564 ymin: -34.68463 xmax: -58.35801 ymax: -34.54766
FALSE Geodetic CRS:  WGS 84
s_cesac = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/centros-salud-accion-comunitaria-cesac/centros_de_salud_nivel_1_BADATA_WGS84.geojson")  %>% 
  conteo_interno(isocronas15,"n_s_cesac")
FALSE Reading layer `centros_de_salud_nivel_1' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/centros-salud-accion-comunitaria-cesac/centros_de_salud_nivel_1_BADATA_WGS84.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 45 features and 22 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.5095 ymin: -34.68464 xmax: -58.35792 ymax: -34.54765
FALSE Geodetic CRS:  WGS 84
s_vmayores = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/vacunatorios-adultos-mayores/vacunatorios-adultos-mayores.geojson")  %>% 
  conteo_interno(isocronas30,"n_s_vmayores")
FALSE Reading layer `vacunacion' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/vacunatorios-adultos-mayores/vacunatorios-adultos-mayores.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 80 features and 6 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.5253 ymin: -34.68989 xmax: -58.37062 ymax: -34.54537
FALSE Geodetic CRS:  WGS 84
s_barriales = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/centros-medicos-barriales/centros-medicos-barriales.geojson")  %>% 
  conteo_interno(isocronas15,"n_s_barriales") %>% 
  mutate(BARRIO = toupper(BARRIO))
FALSE Reading layer `centros_medicos_barriales_WGS84' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-salud/centros-medicos-barriales/centros-medicos-barriales.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 31 features and 13 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52671 ymin: -34.66984 xmax: -58.37052 ymax: -34.54479
FALSE Geodetic CRS:  WGS 84
s_geriatricos = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-justicia-y-seguridad/geriatricos/geriatricos.geojson")  %>% 
  conteo_interno(isocronas30,"n_s_geriatricos")
FALSE Reading layer `GERIATRICOS' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-justicia-y-seguridad/geriatricos/geriatricos.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 475 features and 17 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52936 ymin: -34.69044 xmax: -58.37086 ymax: -34.53981
FALSE Geodetic CRS:  WGS 84
s_esaludables = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/vicejefatura-de-gobierno/estaciones-saludables/estaciones-saludables.geojson")  %>% 
  conteo_interno(isocronas15,"n_s_esaludables")
FALSE Reading layer `estaciones_saludables_WGS84' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/vicejefatura-de-gobierno/estaciones-saludables/estaciones-saludables.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 5 features and 14 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.47952 ymin: -34.63806 xmax: -58.40636 ymax: -34.55088
FALSE Geodetic CRS:  WGS 84

08| Seguridad

Código
# SEGURIDAD---------------------------------------------------------------------

#TOMO CADA BASE DE DATOS, LA INTERSECTO Y HAGO EL CONTEO:

se_comisarias = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-justicia-y-seguridad/comisarias-policia-ciudad/comisarias-policia-de-la-ciudad.geojson") %>% 
  select(nombre, nom_2,tipo) %>% 
  conteo_interno(isocronas30,"n_se_comisarias")
FALSE Reading layer `comisarias_policia_de_la_ciudad_geojson' from data source `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-justicia-y-seguridad/comisarias-policia-ciudad/comisarias-policia-de-la-ciudad.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 57 features and 18 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52697 ymin: -34.68367 xmax: -58.35999 ymax: -34.55155
FALSE Geodetic CRS:  WGS 84
se_bomberos = read.csv("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-justicia-y-seguridad/cuarteles-destacamentos-bomberos/cuarteles-y-destacamentos-de-bomberos-de-policia-federal-argentina.csv",
                    stringsAsFactors = T) %>% 
  select(long,lat,dcia,gestion) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas30,"n_se_bomberos")

09| Tramites

Código
#TRAMITES-----------------------------------------------------------------------

#OBTENGO LOS PUNTOS DE ATENCION CIUDADANA BUSCANDO LAS DIRECCIONES QUE FIGURAN EN LA BASE DE DATOS:

#t_puntos = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-gobierno/puntos-atencion/puntos-de-atencion.xlsx") %>% 
#  mutate(direccion = paste0(calle_nombre," ",calle_altura, ", Ciudad de Buenos Aires, Argentina"))

#evito problemas por cortes en la busqueda y después guardo el archivo y desactivo esta parte del código porque se demora mucho
#Sys.sleep(1)

#t_puntos = t_puntos %>%
#  geocode(address = direccion, method = "osm")

#st_write(t_puntos, "data/t_puntos.geojson")

t_puntos = st_read("data/t_puntos.geojson") %>% 
  filter(!is.na(lat)) %>% 
  st_drop_geometry(geometry) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas15,"n_t_puntos")
FALSE Reading layer `a_puntos' from data source 
FALSE   `I:\Mi unidad\02-ESTUDIOS\00-MEU\MU123 - Instrumentos de análisis urbano II\IAUII_TRABAJO_FINAL\data\t_puntos.geojson' 
FALSE   using driver `GeoJSON'
FALSE replacing null geometries with empty geometries
FALSE Simple feature collection with 848 features and 16 fields (with 848 geometries empty)
FALSE Geometry type: GEOMETRYCOLLECTION
FALSE Dimension:     XY
FALSE Bounding box:  xmin: NA ymin: NA xmax: NA ymax: NA
FALSE Geodetic CRS:  WGS 84
t_cajeros = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/secretaria-de-desarrollo-urbano/cajeros-automaticos/cajeros-automaticos.xlsx") %>% 
  filter(!is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  select(id)

t_bancos = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-economia-y-finanzas/bancos/bancos.xlsx") %>% 
  filter(!is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  select(id)

t_bancosyc = rbind(t_bancos,t_cajeros) %>% 
  mutate(geos = as.character(geometry)) %>% 
  filter(!duplicated(geos)) %>% 
  conteo_interno(isocronas15,"n_t_bancosyc")

rm(t_bancos,t_cajeros)

10| Transporte

Código
#TRANSPORTE---------------------------------------------------------------------

tp_colectivos = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/transporte-y-obras-publicas/colectivos-paradas/paradas-de-colectivo.geojson") %>% 
  conteo_interno(isocronas15,"n_tp_colectivos")
FALSE Reading layer `Paradas_Colectivos' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/transporte-y-obras-publicas/colectivos-paradas/paradas-de-colectivo.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 6931 features and 19 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -583445500 ymin: -34.70066 xmax: -58.34234 ymax: -34.53648
FALSE Geodetic CRS:  WGS 84
tp_bicis = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/transporte-y-obras-publicas/estaciones-bicicletas-publicas/nuevas-estaciones-bicicletas-publicas.geojson") %>% 
  conteo_interno(isocronas15,"n_tp_bicis")
FALSE Reading layer `bicis' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/transporte-y-obras-publicas/estaciones-bicicletas-publicas/nuevas-estaciones-bicicletas-publicas.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 471 features and 11 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.5217 ymin: -34.6832 xmax: -58.3556 ymax: -34.5414
FALSE Geodetic CRS:  WGS 84
tp_subte = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/sbase/subte-estaciones/estaciones-de-subte.geojson") %>% 
  conteo_interno(isocronas15,"n_tp_subte")
FALSE Reading layer `estaciones_de_subte_WGS84' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/sbase/subte-estaciones/estaciones-de-subte.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 90 features and 3 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.48639 ymin: -34.64331 xmax: -58.36993 ymax: -34.55564
FALSE Geodetic CRS:  WGS 84
tp_ffcc = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/transporte-y-obras-publicas/estaciones-ferrocarril/estaciones-de-ferrocarril.geojson") %>% 
  conteo_interno(isocronas15,"n_tp_ffcc")
FALSE Reading layer `estaciones_ferrocarril' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/transporte-y-obras-publicas/estaciones-ferrocarril/estaciones-de-ferrocarril.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 230 features and 11 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -59.43367 ymin: -35.57908 xmax: -57.91904 ymax: -34.09791
FALSE Geodetic CRS:  WGS 84
tp_garagec = st_read("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/transporte-y-obras-publicas/garajes-comerciales/garajes-comerciales.geojson") %>% 
  conteo_interno(isocronas15,"n_tp_garagec")
FALSE Reading layer `garajes_comerciales_WGS84' from data source 
FALSE   `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/transporte-y-obras-publicas/garajes-comerciales/garajes-comerciales.geojson' 
FALSE   using driver `GeoJSON'
FALSE Simple feature collection with 2759 features and 9 fields
FALSE Geometry type: POINT
FALSE Dimension:     XY
FALSE Bounding box:  xmin: -58.52865 ymin: -34.69619 xmax: -58.34851 ymax: -34.53931
FALSE Geodetic CRS:  WGS 84
tp_garagem = read.xlsx("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/transporte-y-obras-publicas/estacionamientos-motos/estacionamientos-de-motos-publico.xlsx") %>% 
  filter(!is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  conteo_interno(isocronas15,"n_tp_garagem")

CONSTRUCCIÓN DEL ÍNDICE
| Ponderación de los Ejes

Código
#LLAMO TODAS LAS BASES DE DATOS Y LAS FILTRO SEGUN SI SON DE LAS CATEGORIAS DE ANALISIS
bases_de_datos <- ls() %>%
  grep("^a_|^d_|^e_|^r_|^s_|^se_|^t_", ., value = TRUE) %>%
  lapply(get)

# ARMO UNA BASE UNIFICADA HACIENDO LEFT_JOINS ITERATIVOS CON AS BD
isocronas_datos <- bases_de_datos %>% 
  reduce(function(df1, df2) {
    left_join(df1, df2 %>% st_drop_geometry(), by = "BARRIO") %>%
      replace(is.na(.), 0)
  }, .init = isocronas_barrios)

CONCLUSIONES
| Y Aprendizajes

Sobre el contenido

Sobre el ejercicio para abordar el contenido

PRÓXIMOS PASOS
| Nuevos temas a desarrollar

Profundizar el análisis de las ciudades de proximidad, desde la mirada de: